package vista;

import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.FocusListener;
import java.awt.event.KeyListener;
import java.awt.event.WindowListener;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;

public class InterfazGraficaProveedor 
{
	private JButton btnGuardar,btnModificar,btnEliminar,btnCancelar,btnSalir,
                    btnSiguiente,btnAtras,btnPrimero,btnUltimo;
    private JTextField txtCodProveedor,txtNombre,txtTelefono;
    private JTextArea txtDireccion;
    private JRadioButton rbJuridico;
    private Ventana ventana;
    
    public InterfazGraficaProveedor()
    {
    	ImageIcon imgProveedor= new ImageIcon(getClass().getResource("imagenes" + File.separator + "proveedor.png"));
    	ImageIcon imgSiguiente= new ImageIcon(getClass().getResource("imagenes" + File.separator + "siguiente.gif"));
    	ImageIcon imgAtras= new ImageIcon(getClass().getResource("imagenes" + File.separator + "atras.gif"));
    	ImageIcon imgPrimero= new ImageIcon(getClass().getResource("imagenes" + File.separator + "primero.gif"));
    	ImageIcon imgUltimo= new ImageIcon(getClass().getResource("imagenes" + File.separator + "ultimo.gif"));
    	
        ImageIcon imgGuardar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "guardar.png"));
        ImageIcon imgModificar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "modificar.png"));
        ImageIcon imgEliminar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "eliminar.png"));
        ImageIcon imgCancelar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "cancelar.png"));
        ImageIcon imgSalir= new ImageIcon(getClass().getResource("imagenes" + File.separator + "salir.png"));
        
        FabricaAbstractaVentana fabricaVentanas= FabricaAbstractaVentana.getInstance();
		ventana= fabricaVentanas.crearVentanaIndependiente();
		
		ventana.asignarTitulo("Proveedor");
		
		JLabel lblTitulo= new JLabel("PROVEEDOR");
        JLabel lblCodProveedor= new JLabel("Rif:");
        JLabel lblNombre= new JLabel("Nombre:");
        JLabel lblDireccion= new JLabel("Direccion:");
        JLabel lblTelefono= new JLabel("Telefono:");
        
        
        JLabel lblLogo= new JLabel(imgProveedor);
        
        JToolBar barraHerramientas= new JToolBar();
       
        
        /*Botones de Navegacion*/
        JToolBar barraNavegacion= new JToolBar();
        
        barraNavegacion.setFloatable(false);
        barraNavegacion.setOpaque(false);
        barraNavegacion.setBorderPainted(false);
        
        btnSiguiente= new JButton(imgSiguiente);
        btnAtras= new JButton(imgAtras);
        btnPrimero= new JButton(imgPrimero);
        btnUltimo= new JButton(imgUltimo);
        
        btnSiguiente.setActionCommand("Siguiente");
        btnAtras.setActionCommand("Atras");
        btnPrimero.setActionCommand("Primero");
        btnUltimo.setActionCommand("Ultimo");
        
        btnPrimero.setToolTipText("Primero");
        btnAtras.setToolTipText("Atras");
        btnSiguiente.setToolTipText("Siguiente");
        btnUltimo.setToolTipText("Ultimo");
        
        barraNavegacion.add(btnPrimero);
        barraNavegacion.add(btnAtras);
        barraNavegacion.add(btnSiguiente);
        barraNavegacion.add(btnUltimo);
        /********Fin de botones de Navegacion*******/
       
        btnGuardar= new JButton("GUARDAR",imgGuardar);
        btnModificar= new JButton("MODIFICAR",imgModificar);
        btnEliminar= new JButton("ELIMINAR",imgEliminar);
        btnCancelar= new JButton("CANCELAR",imgCancelar);
        btnSalir= new JButton("SALIR",imgSalir);
        
        
        txtCodProveedor= new JTextField();
        txtNombre= new JTextField();
        txtDireccion= new JTextArea();
        txtTelefono= new JTextField();
        
        txtCodProveedor.setName("txtCodProveedor");
        txtNombre.setName("txtNombre");
        txtDireccion.setName("txtDireccion");
        txtTelefono.setName("txtTelefono");

        rbJuridico = new JRadioButton("J");

        rbJuridico.setOpaque(false);
        
        rbJuridico.setSelected(true);

        barraHerramientas.setFloatable(false);
        barraHerramientas.setOpaque(false);
        barraHerramientas.setBorderPainted(false);
        
        btnGuardar.setVerticalTextPosition(SwingConstants.BOTTOM);
        btnGuardar.setHorizontalTextPosition(SwingConstants.CENTER);
        btnGuardar.setOpaque(false);
        btnGuardar.setBorderPainted(false);

        btnModificar.setVerticalTextPosition(SwingConstants.BOTTOM);
        btnModificar.setHorizontalTextPosition(SwingConstants.CENTER);
        btnModificar.setOpaque(false);
        btnModificar.setBorderPainted(false);

        btnEliminar.setVerticalTextPosition(SwingConstants.BOTTOM);
        btnEliminar.setHorizontalTextPosition(SwingConstants.CENTER);
        btnEliminar.setOpaque(false);
        btnEliminar.setBorderPainted(false);

        btnCancelar.setVerticalTextPosition(SwingConstants.BOTTOM);
        btnCancelar.setHorizontalTextPosition(SwingConstants.CENTER);
        btnCancelar.setOpaque(false);
        btnCancelar.setBorderPainted(false);

        btnSalir.setVerticalTextPosition(SwingConstants.BOTTOM);
        btnSalir.setHorizontalTextPosition(SwingConstants.CENTER);
        btnSalir.setOpaque(false);
        btnSalir.setBorderPainted(false);
        
        barraHerramientas.add(btnGuardar);
        barraHerramientas.addSeparator();
        barraHerramientas.addSeparator();
        barraHerramientas.add(btnModificar);
        barraHerramientas.addSeparator();
        barraHerramientas.addSeparator();
        barraHerramientas.add(btnEliminar);
        barraHerramientas.addSeparator();
        barraHerramientas.addSeparator();
        barraHerramientas.add(btnCancelar);
        barraHerramientas.addSeparator();
        barraHerramientas.addSeparator();
        barraHerramientas.add(btnSalir);
        
        lblTitulo.setFont(new Font(Font.SERIF,Font.BOLD,20));
        lblCodProveedor.setFont(new Font(Font.DIALOG,Font.BOLD,15));
        lblNombre.setFont(new Font(Font.DIALOG,Font.BOLD,15));
        lblDireccion.setFont(new Font(Font.DIALOG,Font.BOLD,15));
        lblTelefono.setFont(new Font(Font.DIALOG,Font.BOLD,15));
        
        ventana.agregarComponente(lblLogo, 10,60, 230, 190);
        ventana.agregarComponente(lblCodProveedor,250,75,100,20);
        ventana.agregarComponente(lblNombre,250,120,80,20);
        ventana.agregarComponente(lblDireccion,250,180,100,20);  
        ventana.agregarComponente(lblTelefono, 250, 240, 200, 20);    
        ventana.agregarComponente(rbJuridico, 330, 75, 40, 20);
        ventana.agregarComponente(txtCodProveedor,365,71,139,25);
        ventana.agregarComponente(txtNombre, 365, 117, 240,25);

        txtDireccion.setLineWrap(true);
        txtDireccion.setWrapStyleWord(true);
        JScrollPane scroll= new JScrollPane(txtDireccion,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        ventana.agregarComponente(scroll,365, 165, 240, 50);
        
        ventana.agregarComponente(txtTelefono, 365, 235, 240, 25);
        ventana.agregarComponente(barraNavegacion, 210, 290, 200, 30);
        ventana.agregarComponente(barraHerramientas, 78, 340, 500, 90);
        ventana.agregarComponente(lblTitulo, 250, 20, 180, 30);
       
        ventana.asignarTamanio(640,490);
    }

    public void actualizarInfo(String codigo,String nombre,String direccion,String telefono)
    {
         if (codigo.toUpperCase().startsWith("J"))
            rbJuridico.setSelected(true);

         txtCodProveedor.setText(codigo.substring(2));
         txtNombre.setText(nombre);
         txtDireccion.setText(direccion);
         txtTelefono.setText(telefono);
    }
    
    public void addListener(ActionListener escuchador)
    {
    	btnGuardar.addActionListener(escuchador);
        btnEliminar.addActionListener(escuchador);
        btnModificar.addActionListener(escuchador);
        btnCancelar.addActionListener(escuchador);
        btnSalir.addActionListener(escuchador);
     
        btnSiguiente.addActionListener(escuchador);
        btnAtras.addActionListener(escuchador);
        btnPrimero.addActionListener(escuchador);
        btnUltimo.addActionListener(escuchador);
    }
    
    public void addListener(KeyListener escuchador)
    {
         txtCodProveedor.addKeyListener(escuchador);
         txtNombre.addKeyListener(escuchador);
         txtDireccion.addKeyListener(escuchador);
         txtTelefono.addKeyListener(escuchador);
    }
    
    public void visualizarVentana()
	{
		ventana.visualizar();
	}
	
	public void descargarMemoria()
	{
		ventana.descargarMemoria();
	}
	
	public void addListener(FocusListener escuchador)
    {
    	txtCodProveedor.addFocusListener(escuchador);	
    }
    
	public void addListener(WindowListener escuchador)
	{
	   ventana.addListener(escuchador);
	}
	
	public void habilitarBotonActualizar(String boton)
    {
    	if (btnGuardar.getActionCommand().equalsIgnoreCase(boton))
    	   btnGuardar.setEnabled(true);
    	else if (btnEliminar.getActionCommand().equalsIgnoreCase(boton))
    	   btnEliminar.setEnabled(true);
    	else if (btnModificar.getActionCommand().equalsIgnoreCase(boton))
    	   btnModificar.setEnabled(true);
    	else if (btnCancelar.getActionCommand().equalsIgnoreCase(boton))
     	   btnCancelar.setEnabled(true);
    	
    }
    
    public void deshabilitarBotonActualizar(String boton)
    {
    	if (btnGuardar.getActionCommand().equalsIgnoreCase(boton))
    	   btnGuardar.setEnabled(false);
    	else if (btnEliminar.getActionCommand().equalsIgnoreCase(boton))
    	   btnEliminar.setEnabled(false);
    	else if (btnModificar.getActionCommand().equalsIgnoreCase(boton))
    	   btnModificar.setEnabled(false);
    	else if (btnCancelar.getActionCommand().equalsIgnoreCase(boton))
     	   btnCancelar.setEnabled(false);
    	
    }
    
    public void habilitarNavegacion()
    {
    	btnSiguiente.setEnabled(true);
    	btnAtras.setEnabled(true);
    	btnPrimero.setEnabled(true);
    	btnUltimo.setEnabled(true);
    }
    
    public void deshabilitarNavegacion()
    {
    	btnSiguiente.setEnabled(false);
    	btnAtras.setEnabled(false);
    	btnPrimero.setEnabled(false);
    	btnUltimo.setEnabled(false);
    }
    
    public void limpiarTextos()
    {
    	txtNombre.setText("");
    	txtDireccion.setText("");
    	txtTelefono.setText("");
    }
      
    public String getCodProveedor()
    {
    	String texto= "";
    	
    	if (rbJuridico.isSelected())
    		texto="J-";
    	
    	texto += txtCodProveedor.getText();
    	
    	return texto;
    }
    
    public String getNombre()
    {
    	return txtNombre.getText();
    }
    
    public String getDireccion()
    {
    	return txtDireccion.getText();
    }
    
    public String getTelefono()
    {
    	return txtTelefono.getText();
    }
    
    public boolean isJuridico()
    {
    	return rbJuridico.isSelected();
    }
    
}
